home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj8505.arc / BUG3.PAS < prev    next >
Pascal/Delphi Source File  |  1986-09-14  |  2KB  |  51 lines

  1. { BUG3.PAS                                           }
  2. { This program demonstrates how MS-Pascal 3.13, 3.20 }
  3. { and IBM Pascal 2.0 goof up on REAL VAR parameters. }
  4. {                                                    }
  5.  
  6. PROGRAM bug3(output) ;
  7.  
  8.   VAR
  9.     x : real8 ;
  10.  
  11.   PROCEDURE pass_var(VAR a:real8) ;
  12.  
  13.     BEGIN {pass_var}
  14.       writeln('cos(x)  = ',cos(a)) ;
  15.       writeln('exp(x)  = ',exp(a)) ;
  16.       writeln('ln(x)   = ',ln(a)) ;
  17.       writeln('sin(x)  = ',sin(a)) ;
  18.       writeln('sqrt(x) = ',sqrt(a)) ;
  19.     END ; {pass_var}
  20.  
  21.   PROCEDURE pass_vars(VARS b:real8) ;
  22.  
  23.     BEGIN {pass_vars}
  24.       writeln('cos(x)  = ',cos(b)) ;
  25.       writeln('exp(x)  = ',exp(b)) ;
  26.       writeln('ln(x)   = ',ln(b)) ;
  27.       writeln('sin(x)  = ',sin(b)) ;
  28.       writeln('sqrt(x) = ',sqrt(b)) ;
  29.     END ; {pass_vars}
  30.  
  31.   BEGIN {bug3}
  32.     x := 33.33 ;
  33.     writeln('BUG3 RESULTS') ;
  34.     writeln ;
  35.     writeln('Here is what happens 
  36.              when x is not passed as a parameter:') ;
  37.     writeln('cos(x)  = ',cos(x)) ;
  38.     writeln('exp(x)  = ',exp(x)) ;
  39.     writeln('ln(x)   = ',ln(x)) ;
  40.     writeln('sin(x)  = ',sin(x)) ;
  41.     writeln('sqrt(x) = ',sqrt(x)) ;
  42.     writeln ;
  43.     writeln('Here is what happens 
  44.              when x is passed as a VAR parameter:') ;
  45.     pass_var(x) ;
  46.     writeln ;
  47.     writeln('Here is what happens 
  48.              when x is passed as a VARS parameter:') ;
  49.     pass_vars(x) ;
  50.   END. {bug3}
  51.